using System.Data.Entity.ModelConfiguration;
using CodeSaude.Domain.Entities;

namespace CodeSaude.Infrastructure.Data.EntityConfig
{
    public class LocalAtendimentoMap : EntityTypeConfiguration<LocalAtendimento>
    {
        public LocalAtendimentoMap()
        {
            // Primary Key
            HasKey(t => t.LocalAtendimentoId);

            // Properties
            Property(t => t.NomeLocal)
                .IsRequired()
                .HasMaxLength(45);

            Property(t => t.TextoLocal)
                .IsRequired()
                .HasMaxLength(255);

            Property(t => t.IpSomLocal)
                .IsRequired()
                .HasMaxLength(15);

            Property(t => t.IpVideoLocal)
                .IsRequired()
                .HasMaxLength(15);

            Property(t => t.PortaVideoLocal)
                .IsRequired()
                .HasMaxLength(10);

            Property(t => t.PortaSomLocal)
                .IsRequired()
                .HasMaxLength(10);

            // Table & Column Mappings
            ToTable("local_atendimento");
            Property(t => t.LocalAtendimentoId).HasColumnName("id_local");
            Property(t => t.NomeLocal).HasColumnName("nome_local");
            Property(t => t.TextoLocal).HasColumnName("texto_local");
            Property(t => t.IpSomLocal).HasColumnName("ip_som_local");
            Property(t => t.IpVideoLocal).HasColumnName("ip_video_local");
            Property(t => t.PortaVideoLocal).HasColumnName("porta_video_local");
            Property(t => t.PortaSomLocal).HasColumnName("porta_som_local");
            Property(t => t.IdCategoria).HasColumnName("id_categoria");
            Property(t => t.QtdLeitos).HasColumnName("quantidade_leitos");
        }
    }
}
